<?php

namespace app\adminapi\controller;

use think\Controller;
use think\Request;

class Role extends BaseApi
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $list = \app\common\model\Role::where('id','>',1)->select();
        foreach($list as $k => $v){
                $auths = \app\common\model\Auth::where('id','in',$v['role_auth_ids'])->select();
                $auths= (new \think\Collection($auths))->toArray();
                $auths = get_tree_list($auths);
                $list[$k]['role_auths'] = $auths;
                
        } 
       
        $this->ok($list);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $params = input();
        $validate = $this->validate($params,[
            'role_name|角色名称' => 'require|max:25',
            // 'desc|角色描述' => 'require|max:255',
            'auth_ids|权限' => 'require',
        ]);
        if($validate!==true){
            $this->fail($validate);
        
        }
        $params['role_auth_ids'] = $params['auth_ids'];
        $role = \app\common\model\Role::create($params,true);
        $info = \app\common\model\Role::find($role->id);
        $this->ok($info);
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {
         $info = \app\common\model\Role::field('id, role_name, desc, role_auth_ids')->find($id);
         $this->ok($info);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        $params = input();
        $validate = $this->validate($params,[
            'role_name|角色名称' =>'require|max:25',
            // 'desc|角色描述' =>'require|max:255',
            'auth_ids|权限' =>'require',
        ]);
        if($validate!==true){
            $this->fail($validate);
        }
        $params['role_auth_ids'] = $params['auth_ids'];
        \app\common\model\Role::update($params,['id'=>$id],true);
        $info = \app\common\model\Role::find($id);
        $this->ok($info);
    }

    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        if($id ==1){
            $this->fail('超级管理员不能删除');
        }
        $count = \app\common\model\Admin::where('role_id',$id)->count();
        if($count>0){
            $this->fail('该角色下有管理员，不能删除');
        }
    }
}
